package org.jeecg.entity.basedata;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.system.entity.BaseEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description: 租赁合同
 * @Author: liurui
 * @Date:   2021-06-29
 * @Version: V1.0
 */
@Data
@TableName("rent_contract")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="rent_contract对象", description="租赁合同")
public class RentContract extends BaseEntity  {
    
	/**id*/
	@TableId(type = IdType.ID_WORKER_STR)
    @ApiModelProperty(value = "id")
	private String id;
	/**tenantId*/
	@Excel(name = "tenantId", width = 15)
    @ApiModelProperty(value = "tenantId")
	private String tenantId;
	/**项目id*/
	@Excel(name = "项目id", width = 15)
    @ApiModelProperty(value = "项目id")
	@Dict(dicCode = "id",dictTable="base_project",dicText="name")
	private String projectId;
	/**楼栋id*/
	@Excel(name = "楼栋id", width = 15)
    @ApiModelProperty(value = "楼栋id")
	@Dict(dicCode = "id",dictTable="base_floor",dicText="name")
	private String floorId;
	/**房间id*/
	@Excel(name = "房间id", width = 15)
    @ApiModelProperty(value = "房间id")
	@Dict(dicCode = "id",dictTable="base_room",dicText="name")
	private String roomId;
	/**租赁人*/
	@Excel(name = "租赁人", width = 15)
    @ApiModelProperty(value = "租赁人")
	private String customer;
	/**合同编号*/
	@Excel(name = "合同编号", width = 15)
    @ApiModelProperty(value = "合同编号")
	private String code;
	/**合同名称*/
	@Excel(name = "合同名称", width = 15)
    @ApiModelProperty(value = "合同名称")
	private String name;
	/**合同起始日期*/
	@Excel(name = "合同起始日期", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "合同起始日期")
	private Date startDate;
	/**合同截止日期*/
	@Excel(name = "合同截止日期", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "合同截止日期")
	private Date endDate;
	/**已生成账单最大月*/
	@Excel(name = "已生成账单最大月", width = 15)
    @ApiModelProperty(value = "已生成账单最大月")
	private String maxBillMonth;
	/**合同原件*/
	@Excel(name = "合同原件", width = 15)
    @ApiModelProperty(value = "合同原件")
	private String fileUrl;
	/**合同状态1:正常 9:过期*/
	@Excel(name = "合同状态1:正常 9:过期", width = 15)
    @ApiModelProperty(value = "合同状态1:正常 9:过期")
	private Integer status;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
	private String createBy;
	/**创建时间*/
	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
	private Date createTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
	private String updateBy;
	/**更新时间*/
	@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
	private Date updateTime;
	/**删除标识*/
	@Excel(name = "删除标识", width = 15)
	@TableLogic
    @ApiModelProperty(value = "删除标识")
	private String delFlag;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
	private String remarks;

	@TableField(exist = false)
	private String projectName;

	@TableField(exist = false)
	private String createName;

	@TableField(exist = false)
	private String updateName;

	@TableField(exist = false)
	private String floorName;

	@TableField(exist = false)
	private String roomName;
	@TableField(exist = false)
	private BigDecimal buildArea;

	@TableField(exist = false)
	private String feeRuleId;

	@TableField(exist = false)
	private String feeId;

	@TableField(exist = false)
	private String feeName;

	@TableField(exist = false)
	private String feeRuleName;

	@TableField(exist = false)
	private Integer isBindFee;

	@TableField(exist = false)
	private String address;

	@TableField(exist = false)
	private String feeRuleContractId;

}
